// created by noellynch
// Apr 19, 2011

package com.jsonscenegraph;

import java.util.List;

public class JSONSGSpatial {
	public	enum	Type {
		node, mesh
	}
	
	public	enum	RenderMode {
		opaque, inherit, transparent
	}
	
	// standard data
	private		String			name;
	private		JSONSGVec3		translation;
	private		JSONSGVec3		scale;
	private		JSONSGQuat		rot;
	private		RenderMode		renderMode = RenderMode.inherit;
	
	// node data
	protected		List<JSONSGSpatial>		children;
	
	// mesh data
	protected		List<Float>				verts;
	protected		List<Integer>			indices;
	protected		List<Float>				normals;
	protected		List<Float>				colours;
	protected		List<Float>				textureCoords;
	
	private		Type			type;
	
	private		JSONSGMaterial		material;
	private		JSONSGBlend			blend;
	private		JSONSGTexture		texture;
	
	public JSONSGSpatial(Type t) {
		super();
		
		type = t;
	}
	
	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public JSONSGVec3 getTranslation() {
		return translation;
	}

	public void setTranslation(JSONSGVec3 translation) {
		this.translation = translation;
	}

	public JSONSGVec3 getScale() {
		return scale;
	}

	public void setScale(JSONSGVec3 scale) {
		this.scale = scale;
	}

	public JSONSGQuat getRot() {
		return rot;
	}

	public void setRot(JSONSGQuat rot) {
		this.rot = rot;
	}

	public JSONSGMaterial getMaterial() {
		return material;
	}

	public void setMaterial(JSONSGMaterial material) {
		this.material = material;
	}

	public RenderMode getRenderMode() {
		return renderMode;
	}

	public void setRenderMode(RenderMode renderMode) {
		this.renderMode = renderMode;
	}

	public JSONSGBlend getBlend() {
		return blend;
	}

	public void setBlend(JSONSGBlend blend) {
		this.blend = blend;
	}

	public Type getType() {
		return type;
	}

	public JSONSGTexture getTexture() {
		return texture;
	}

	public void setTexture(JSONSGTexture texture) {
		this.texture = texture;
	}
}
